package main

import "fmt"

type Human struct {
	name string
	age  string
}

// Name的get set方法
func (this *Human) SetName(newName string) {
	this.name = newName
}

func (this *Human) GetName() string {
	return this.name
}

// Age的get set方法
func (this *Human) SetAge(newAge string) {
	this.name = newAge
}

func (this *Human) GetAge() string {
	return this.name
}

// Human的行为方法
func (this *Human) Eat() {
	fmt.Println("吃饭")
}
func (this *Human) Walking() {
	fmt.Println("走路")
}

// 子类SuperMan
type SuperMan struct {
	Human     // 继承Humn类，直接写该类型就行
	level int // 子类特有的属性
}

// 代码测试
func main() {
	h := Human{"zhang3", "23"}
	h.Eat()
	h.Walking()

	// 定义子类SuperMan=========================================
	// s := SuperMan{Human{"li4","23"},88}
	// s.Eat()
	// s.Walking()

	var s SuperMan
	s.name = "li4"
	s.age = "23"
	s.Eat()
	s.Walking()
}
